#include "Agenda.h"


Agenda::Agenda(){

}

Agenda::Agenda(Hour startHour, Date date, vector<Appointment *> agendedApointments, unsigned short numMaxClients = 20) {
	this->startHour = startHour;
	this->date = date;
	this->agendedApointments = agendedApointments;
	this->numMaxClients = numMaxClients;
}


Agenda::~Agenda(){

}


Hour *Agenda::getStartHour() const {
	return startHour;
}


void Agenda::setStartHour(const Hour &startHour){
	this->startHour = *startHour;
}


Date *Agenda::getDate() const {
	return date;
}


void Agenda::setDate(const Date &date){
	this->date = *date;
}


vector<Appointment *> Agenda::getAgendedAppointments() const {
	return agendedApointments;
}


void Agenda::setAggendedAppointments(const vector<Appointment *> &appointments){
	this->agendedApointments = appointments;
}


bool Agenda::addAppointment(const Appointment &appointment){
	//TODO: deve verificar se a hora n�o � coincidente com outras marca��es e se nao ultrapassa o numero maximo de pacientes
		return false;
}


bool Agenda::removeAppointment(const Appointment &appointment) {
	//TODO: operator== para Appointment
	return false;
}

bool Agenda::removeAppointment(unsigned short position) {
	//TODO: remove a marca��o que fica na posi�ao do vector dada (o vector de apointments deve estar sempre ordenado pela hora)
	return false;
}

